#ifndef __COMMAND_H__
#define __COMMAND_H__   

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<time.h>
#include<dirent.h>
#include<pwd.h>
#include<grp.h>
#include<pthread.h>
#include<sys/socket.h>
#include<sys/mman.h>
#include<stdio.h>
#include<time.h>
#include<ctype.h>
#include <sys/sendfile.h>
#include <mysql/mysql.h>
#include "common.h"
#include "db.h"
#include "stack.h"
#include <fcntl.h>
#include <sys/stat.h>  
#include <dirent.h>    
#include <stdio.h>     
#include <stdlib.h>   
#include <string.h>    
#include <unistd.h>    
#include "LogSystem.h"

#define MAX_BUF 4096

typedef struct train_s{
    int type;
    int len;
    char buf[4096];
}train_t;

//pwd命令
void task_pwd(int netfd,stack_int_t *stack,MYSQL *conn);
//cd命令
void task_cd(int netfd,stack_int_t *stack,MYSQL *coon);
//ls命令
int task_ls(int netfd,stack_int_t *stack,MYSQL *conn);
//mkdir命令
int task_mkdir(int netfd,stack_int_t *stack,MYSQL *conn,pthread_mutex_t *mutex);
//rmdir命令
void task_rmdir(int netfd,stack_int_t *stack,MYSQL *conn,pthread_mutex_t *mutex);

//puts命令
void task_puts();
//gets命令
void task_gets();
//resume_gets命令
void task_resume_gets();
//resume_puts命令
void task_resume_puts();

//remove命令
void task_remove();
//大文件传输
void task_big_file();


#endif